package cn.b.sky.mes.andon.service;

import java.util.List;

import cn.b.sky.mes.andon.model.AndonTemplate;
import cn.b.sky.mes.andon.model.condition.AndonTemplateCondition;
import cn.b.sky.common.model.BatchJobReport;
import cn.b.sky.common.model.Page;

/**
 * 
 * <strong>Title : AndonTemplateService<br></strong>
 * <strong>Package : cn.b.sky.mes.andon.service<br></strong>
 * <strong>Description : </strong>暗灯模板操作业务类接口<br> 
 * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
 * <p>
 * @author JunLin.Yang<br>
 * @version <strong>v1.0.0</strong>
 */
public interface AndonTemplateService {

  /**
   * 
   * <strong>Title : insertAndonTemplate<br></strong>
   * <strong>Description : </strong>新增暗灯模板数据<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param data 暗灯模板
   * @return
   * int 新增记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int insertAndonTemplate(AndonTemplate data);

  /**
   * 
   * <strong>Title : updateAndonTemplate<br></strong>
   * <strong>Description : </strong>更新暗灯模板数据<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param data 暗灯模板
   * @return
   * int 更新的记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int updateAndonTemplate(AndonTemplate data);

  /**
   * 
   * <strong>Title : deleteAndonTemplate<br></strong>
   * <strong>Description : </strong>删除暗灯模板数据<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param data 暗灯模板
   * @return
   * BatchJobReport 执行结果信息对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public BatchJobReport deleteAndonTemplate(AndonTemplate data);

  /**
   * 
   * <strong>Title : getAndonTemplatesCount<br></strong>
   * <strong>Description : </strong>查询所有的暗灯模板数据记录数<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @return
   * long 数据记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public long getAndonTemplatesCount();

  /**
   * 
   * <strong>Title : selectAndonTemplates<br></strong>
   * <strong>Description : </strong>查询所有的暗灯模板数据<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @return
   * List<AndonTemplate> 所有的暗灯模板数据
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<AndonTemplate> selectAndonTemplates();

  /**
   * 
   * <strong>Title : deleteAndonTemplateByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键信息删除暗灯模板数据<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
  * @param siteCode 工厂代码
  * @param templateCode 暗灯模板编号
  * @return
   * BatchJobReport 执行结果信息对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public BatchJobReport deleteAndonTemplateByPrimaryKey(String siteCode, String templateCode);

  /**
   * 
   * <strong>Title : getAndonTemplateByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键查询暗灯模板对象<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param siteCode 工厂代码
   * @param templateCode 暗灯模板编号
   * @return
   * AndonTemplate 暗灯模板对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public AndonTemplate getAndonTemplateByPrimaryKey(String siteCode, String templateCode);

  /**
   * 
   * <strong>Title : existAndonTemplateByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键查询暗灯模板对象是否存在<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param siteCode 工厂代码
   * @param templateCode 暗灯模板编号
   * @return
   * boolean 数据是否存在
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public boolean existAndonTemplateByPrimaryKey(String siteCode, String templateCode);

  /**
   * 
   * <strong>Title : existsAndonTemplateByCondition<br></strong>
   * <strong>Description : </strong>根据查询对象查询暗灯模板数据是否存在<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param condition 暗灯模板查询对象
   * boolean 数据是否存在
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public boolean existsAndonTemplateByCondition(AndonTemplateCondition condition);

  /**
   * 
   * <strong>Title : getAndonTemplateByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询对应暗灯模板对象<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param condition 暗灯模板查询条件
   * @return
   * AndonTemplate 暗灯模板对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public AndonTemplate getAndonTemplateByCondition(AndonTemplateCondition condition);

  /**
   * 
   * <strong>Title : selectAndonTemplatesByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询暗灯模板集合<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param condition 暗灯模板查询条件
   * @return 
   * List<AndonTemplate> 暗灯模板集合
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<AndonTemplate> selectAndonTemplatesByCondition(AndonTemplateCondition condition);

  /**
   * 
   * <strong>Title : selectAndonTemplatePageDataByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询相应分页的暗灯模板集合<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param condition 暗灯模板查询条件
   * @return 
   * List<AndonTemplate> 暗灯模板集合
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<AndonTemplate> selectAndonTemplatePageDataByCondition(AndonTemplateCondition condition);

  /**
   * 
   * <strong>Title : selectAndonTemplatePageByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询相应暗灯模板分页信息<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param condition 暗灯模板查询条件
   * @return 
   * List<AndonTemplate> 暗灯模板分页信息
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public Page selectAndonTemplatePageByCondition(AndonTemplateCondition condition);

  /**
   * 
   * <strong>Title : getAndonTemplatesCountByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件查询相应的暗灯模板记录数<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
   * @param condition 暗灯模板查询条件
   * @return
   * long 数据记录数
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public long getAndonTemplatesCountByCondition(AndonTemplateCondition condition);

  /**
   * 
   * <strong>Title : getAndonTemplateAndAttributesByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键信息获取ANDON模版信息及其属性值集合<br> 
   * <strong>Create on : 2016年10月14日 下午2:02:11<br></strong>
   * <p>
   * @param siteCode 工厂编码
   * @param templateCode 模版编码
   * @return
   * AndonTemplate ANDON模版信息
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public AndonTemplate getAndonTemplateAndAttributesByPrimaryKey(String siteCode, String templateCode);

  /**
   * 
   * <strong>Title : insertAndonTemplateAndAttributes<br></strong>
   * <strong>Description : </strong>新增或修改ANDON模版信息同时维护自定义属性值<br> 
   * <strong>Create on : 2016年10月14日 下午2:07:57<br></strong>
   * <p>
   * @param andonTemplate ANDON模版
   * @return
   * boolean 是否新增成功
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public boolean insertOrUpdateAndonTemplateAndAttributes(AndonTemplate andonTemplate);

  /**
   * 
   * <strong>Title : deleteAndonTemplateAndAttributesByPrimaryKey<br></strong>
   * <strong>Description : </strong>根据主键信息删除暗灯模板及其自定义属性值数据<br> 
   * <strong>Create on : 2016-10-14 下午01:19:04<br></strong>
   * <p>
  * @param siteCode 工厂代码
  * @param templateCode 暗灯模板编号
  * @return
   * BatchJobReport 执行结果信息对象
   * @throws 
   * @author JunLin.Yang<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public BatchJobReport deleteAndonTemplateAndAttributesByPrimaryKey(String siteCode, String templateCode);

  /**
   * 
   * <strong>Title : getAndonTemplateDetail<br></strong>
   * <strong>Description : </strong>获取按灯模板详细信息<br> 
   * <strong>Create on : 2016年10月19日 下午2:34:42<br></strong>
   * <p>
   * @param siteCode
   * @param templateCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public AndonTemplate getAndonTemplateDetail(String siteCode, String templateCode);

}
